#include "zeichnen.h"

void Zeichne_Statische_Elemente(HDC hdc)	//Schweißtisch,Laufbänder,Werkzeugschrank,Schiene
{
	int i1,i2;
	
	MoveToEx(hdc, -10, 100, NULL);		//1. Fließband
	LineTo(hdc, 300, 100);
	LineTo(hdc, 300, 200);
	LineTo(hdc, -10, 200);

	MoveToEx(hdc, -10, 400, NULL);		//2. Fließband
	LineTo(hdc, 300, 400);
	LineTo(hdc, 300, 500);
	LineTo(hdc, -10, 500);

	MoveToEx(hdc, 1010, 400, NULL);		//3. Fließband
	LineTo(hdc, 600, 400);
	LineTo(hdc, 600, 500);
	LineTo(hdc, 1010, 500);

	Rectangle(hdc,250-5,300-r2-5,750+5,300+r2+5);		//Schiene
	Rectangle(hdc,250,300-r2,750,300+r2);

	Rectangle(hdc,450,135,550,85);		//Werkzeugschrank

	
	Rectangle(hdc,710,280,895,165);		//Schweißtisch
	for (i1=0;i1<11;i1++)
		for (i2=0;i2<18;i2++)
			Rectangle(hdc, 715+i2*10, 170+i1*10, 720+i2*10, 175+i1*10);
		
	
}


void Zeichne_Dynamische_Elemente(HDC hdc)		//Arme,Hand,Schweißgerät,Blech
{
	int i;

	Zeichne_Polygon(hdc, blech1_n, anz_p_b1);		//Blech 1

	Zeichne_Polygon(hdc, blech2_n, anz_p_b2);		//Blech 2

	for (i=0;i<z;i++)		//Zeichnen der Schweißpunkte
	{
		SetPixel(hdc,(int)getElem(blech2_n, anz_p_b2+i)->x,
				(int)getElem(blech2_n, anz_p_b2+i)->y, 0);	
	}
	
	Zeichne_Arme(hdc, robo1_n, robo2_n);		//Arme
		
	Zeichne_Polygon(hdc, schweisser_n,9);		//Schweißgerät
	
	Zeichne_Polygon(hdc, hand_n,18);		//Hand	

}


void Zeichne_Polygon(HDC hdc, Liste* punkt, int anzp)
{
	int i;
	POINT *pt;
	pt = calloc(sizeof(POINT), anzp);
	for (i=0; i<anzp; ++i) {
		(pt+i)->x = (long int)punkt->punkt->x;
		(pt+i)->y = (long int)punkt->punkt->y;
		punkt = getNext(punkt);
	}
	Polygon(hdc, pt, anzp);
}




void Zeichne_Ellipse(HDC hdc, Punkt* mittelpunkt, int radius_x, int radius_y)
{
	Ellipse(hdc, (int)mittelpunkt->x-radius_x, (int)mittelpunkt->y-radius_y,
		(int)mittelpunkt->x+radius_x, (int)mittelpunkt->y+radius_y);
}



void Zeichne_Arme(HDC hdc, Liste* arm1, Liste* arm2)

{
	Zeichne_Polygon(hdc,arm1,4);
	Zeichne_Ellipse(hdc,getElem(arm1, 4),r1,r1);
	Zeichne_Ellipse(hdc,getElem(arm1, 4),r2,r2);			
	Zeichne_Ellipse(hdc,getElem(arm1, 5),r1,r1);
	Zeichne_Ellipse(hdc,getElem(arm1, 5),r2,r2);

	Zeichne_Polygon(hdc,arm2,8);
	Zeichne_Ellipse(hdc,getElem(arm2, 8),r3,r3);		
	Zeichne_Ellipse(hdc,getElem(arm2, 8),r2,r2);
}



void Zeichne_Feuer(HDC hdc)
{
	Liste *runner, *altrunner;
	
	//runner = feuer_n;
	altrunner = feuer;
	feuer_n = initListe();
	while(altrunner) {
		addPunktxy(feuer_n, getPunkt(altrunner)->x+getPunkt(schweisser_n)->x,
			getPunkt(altrunner)->y + getPunkt(schweisser_n)->y);
		altrunner = getNext(altrunner);
	}

//	SelectObject(hdc,stift_"zum Schweißen(rot)");

	runner = feuer_n;
	while(runner)
	{		
		MoveToEx(hdc,(int)getElem(feuer_n, 7)->x,
				(int)getElem(feuer_n, 7)->y, NULL);
		LineTo(hdc,(int)getPunkt(runner)->x,
				(int)getPunkt(runner)->y);
		runner = getNext(runner);
	}
	
	Sleep(1000);

//	DeleteObject(hdc,stift_"zum Schweißen(rot)");
}
